package JDBC;

import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.ArrayList;

import Model.Lieu;
import Model.Professeur;

public class Professeur_Afficher {

	public ArrayList<Professeur> afficher() {
		ArrayList<Professeur> liste_prof = new ArrayList<Professeur>();
		System.out.println("JDBC AFFICHER");
		try {

			connexionBDD a = new connexionBDD();
			Connection conn=a.connect();

			//Création d'un objet Statement
			Statement state = conn.createStatement();
			Statement state2 = conn.createStatement();

			//L'objet ResultSet contient le résultat de la requête SQL
			ResultSet result = state.executeQuery("SELECT * FROM professeur");



			while(result.next()){	
				Professeur p = new Professeur();
				Lieu ad = new Lieu();
				p.setIdProfesseur(Integer.parseInt(result.getObject(1).toString()));
				p.setNom(result.getObject(2).toString());
				p.setPrenom(result.getObject(3).toString());
				p.setSexe(result.getObject(4).toString());
				p.setDate(result.getObject(5).toString());
				p.setMail(result.getObject(8).toString());
				p.setTelephone_fix(result.getObject(6).toString());
				p.setTelephone_mobile(result.getObject(7).toString());
				
				p.setConseil((Boolean) result.getObject(10));
				p.setVoiture((Boolean) result.getObject(9));
				p.setIntervenant((Boolean) result.getObject(12));

				ResultSet result2 = state2.executeQuery("SELECT * FROM lieu where id_lieu="+Integer.parseInt(result.getObject(11).toString()));


				while(result2.next()){
					ad.setIdLieu(Integer.parseInt(result2.getObject(1).toString()));
					ad.setNumero(Integer.parseInt(result2.getObject(2).toString()));
					ad.setRue(result2.getObject(3).toString());
					ad.setComplement(result2.getObject(4).toString());
					ad.setCp(Integer.parseInt(result2.getObject(5).toString()));
					ad.setVille(result2.getObject(6).toString());
					ad.setIdDepartement(1);
					p.setLieu(ad);
				}
				liste_prof.add(p);
				p.toString();

				result2.close();

			}



			state.close();
			state2.close();

		} 

		catch (Exception e) {
			e.printStackTrace();
		}	
		return liste_prof;

	}
	
	public ArrayList<Professeur> afficherProfesseur() {
		ArrayList<Professeur> liste_prof = new ArrayList<Professeur>();
		System.out.println("JDBC AFFICHER");
		try {

			connexionBDD a = new connexionBDD();
			Connection conn=a.connect();

			//Création d'un objet Statement
			Statement state = conn.createStatement();
			Statement state2 = conn.createStatement();

			//L'objet ResultSet contient le résultat de la requête SQL
			ResultSet result = state.executeQuery("SELECT * FROM professeur where intervenant = false");



			while(result.next()){	
				Professeur p = new Professeur();
				Lieu ad = new Lieu();
				p.setIdProfesseur(Integer.parseInt(result.getObject(1).toString()));
				p.setNom(result.getObject(2).toString());
				p.setPrenom(result.getObject(3).toString());
				p.setSexe(result.getObject(4).toString());
				p.setDate(result.getObject(5).toString());
				p.setMail(result.getObject(8).toString());
				p.setTelephone_fix(result.getObject(6).toString());
				p.setTelephone_mobile(result.getObject(7).toString());
				
				p.setConseil((Boolean) result.getObject(10));
				p.setVoiture((Boolean) result.getObject(9));
				p.setIntervenant((Boolean) result.getObject(12));

				ResultSet result2 = state2.executeQuery("SELECT * FROM lieu where id_lieu="+Integer.parseInt(result.getObject(11).toString()));


				while(result2.next()){
					ad.setIdLieu(Integer.parseInt(result2.getObject(1).toString()));
					ad.setNumero(Integer.parseInt(result2.getObject(2).toString()));
					ad.setRue(result2.getObject(3).toString());
					ad.setComplement(result2.getObject(4).toString());
					ad.setCp(Integer.parseInt(result2.getObject(5).toString()));
					ad.setVille(result2.getObject(6).toString());
					ad.setIdDepartement(1);
					p.setLieu(ad);
				}
				liste_prof.add(p);
				p.toString();

				result2.close();

			}



			state.close();
			state2.close();

		} 

		catch (Exception e) {
			e.printStackTrace();
		}	
		return liste_prof;

	}
	
	public ArrayList<Professeur> afficherIntervenant() {
		ArrayList<Professeur> liste_prof = new ArrayList<Professeur>();
		System.out.println("JDBC AFFICHER");
		try {

			connexionBDD a = new connexionBDD();
			Connection conn=a.connect();

			//Création d'un objet Statement
			
			Statement state = conn.createStatement();
			Statement state2 = conn.createStatement();

			//L'objet ResultSet contient le résultat de la requête SQL
			ResultSet result = state.executeQuery("SELECT * FROM professeur where intervenant = true");



			while(result.next()){	
				Professeur p = new Professeur();
				Lieu ad = new Lieu();
				p.setIdProfesseur(Integer.parseInt(result.getObject(1).toString()));
				p.setNom(result.getObject(2).toString());
				p.setPrenom(result.getObject(3).toString());
				p.setSexe(result.getObject(4).toString());
				p.setDate(result.getObject(5).toString());
				p.setMail(result.getObject(8).toString());
				p.setTelephone_fix(result.getObject(6).toString());
				p.setTelephone_mobile(result.getObject(7).toString());
				
				p.setConseil((Boolean) result.getObject(10));
				p.setVoiture((Boolean) result.getObject(9));
				p.setIntervenant((Boolean) result.getObject(12));

				ResultSet result2 = state2.executeQuery("SELECT * FROM lieu where id_lieu="+Integer.parseInt(result.getObject(11).toString()));


				while(result2.next()){
					ad.setIdLieu(Integer.parseInt(result2.getObject(1).toString()));
					ad.setNumero(Integer.parseInt(result2.getObject(2).toString()));
					ad.setRue(result2.getObject(3).toString());
					ad.setComplement(result2.getObject(4).toString());
					ad.setCp(Integer.parseInt(result2.getObject(5).toString()));
					ad.setVille(result2.getObject(6).toString());
					ad.setIdDepartement(1);
					p.setLieu(ad);
				}
				liste_prof.add(p);
				p.toString();

				result2.close();

			}



			state.close();
			state2.close();

		} 

		catch (Exception e) {
			e.printStackTrace();
		}	
		return liste_prof;

	}
	



}
